/**
 * le package.
 */
package fr.afcepf.atod21.data;

import java.util.List;

import fr.afcepf.atod21.entity.Stagiaire;
import fr.afcepf.atod21.exception.Atod21Exception;

/**
 * Definition des methodes utilisees par l'application.
 * @author Stagiaire
 *
 */
public interface IDaoStagiaire {
    /**
     * Methode permettant de rechercher un
     * {@link Stagiaire} par nom.
     * @param nom le nom du {@link Stagiaire} recherche.
     * @return
     * <code>
     *      <ul>
     *           <li>une liste contenant les {@link Stagiaire}
     *               si il existe contenant le nom passe en parametre.
     *           </li>
     *           <li>null si aucun ne correspond au critere de recherche</li>
     *      </ul>
     *</code>
     */
List<Stagiaire> rechercher(String nom);
/**
 * Methode permettant de rechercher un
 * {@link Stagiaire} par nom.
 * @param idOrganisme l'identifiant du {@link Organisme} recherche.
 * @return
 * <code>
 *      <ul>
 *           <li>une liste contenant les {@link Stagiaire}
 *               si il existe contenant le nom passe en parametre.
 *           </li>
 *           <li>null si aucun ne correspond au critere de recherche</li>
 *      </ul>
 *</code>
 */
 List<Stagiaire> rechercher(int idOrganisme);
 /**
  * Methode permettant d'ajouter un stagiaire
  * {@link Stagiaire} par nom.
  * @param stagiaire {@link Stagiaire} a ajouter.
  * @return
  * <code>
  *      <ul>
  *           <li>le {@link Stagiaire} avec la cle primaire peuplee.
  *           </li>
  *           <li>le {@link Stagiaire} avec sa cle primaire non peuplee</li>
  *      </ul>
  *</code>
  *@throws Atod21Exception exception lors de l'acces a la BDD.
  */
Stagiaire ajouter(Stagiaire stagiaire) throws Atod21Exception;
/**
 * Methode permettant de modifier une entity
 * {@link Stagiaire} dans la BDD afin de lui supprimer
 * sa reference vers son {@link Organisme}.
 * @param stagiaire le {@link Stagiaire} a modifier.
 * @return
 * <code>
 *      <ul>
 *           <li>le {@link Stagiaire} avec son {@link Organisme}
 *               null si ca marche.
 *           </li>
 *           <li>le {@link Stagiaire} avec son {@link Organisme}
 *           toujours affecte si ca marche pas
 *           </li>
 *      </ul>
 *</code>
 */
Stagiaire envoi(Stagiaire stagiaire) throws Atod21Exception;
}
